home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 1
/
SPACE - Library 1 - Volume 1.iso
/
games
/
521
/
dr_necro
/
dr_necro.gfa
(
.txt
)
< prev
next >
Wrap
GFA-BASIC Atari
|
1991-11-30
|
18KB
|
797 lines
' Lets Try This Again!
'
' Dr. Necro
' By Ken Schafer
'
' Revision History
' ----------------
'
' Ver 0.58 -- 11/20/91
' --------------------
' Fixed small bug that occasionally preventing game from ending
' when it should (Stooooooopid mistake!) (thanx Mom!)
'
' Ver 0.57 -- 7/31/91
' -------------------
' Joystick routines added(0.57)
' Sadistic music added as an experiment(0.56)
'
' Ver 0.55 -- 6/23/91
' -------------------
' Levels now function. Game is playable as is
' Needs Title Screen, sound, animation and cleanup
'
' Ver 0.52 -- 6/21/91
' -------------------
' Added routines to implement virus display and scoring
'
' Ver 0.50 -- 6/21/91
' -------------------
' Lots of Changes -- Pills now have proper shape (tops, sides etc)
' Added all changes to checking routines to implement various shapes
' Pills that are linked now have bonds and hold each other up!
'
' Ver 0.40 -- 6/19/91
' -------------------
' Replaced boxes with actual bitmaps
' Added Background Picture --------- Things are getting REAL cool!
'
' Ver 0.31 -- 5/26/91
' -------------------
' Added routines to allow individual pill pieces to fall
'
' Ver 0.30 -- 4/20/91
' -------------------
' Added boxes instead of debug numbers
' Began Coding routines to check/erase lines
'
' Ver 0.21 -- 4/18/91
' -------------------
' First version as Dr. Necro
' Replaced screen point checking with an array lookup -- much faster
'
' Ver 0.14 -- 1/20/91
' -------------------
' Originally the beginnings of a Tetris clone...
' The main logic for Dr. Necro was "extracted" from here.
'
'
' Constants
'
v1_0$="0.58"
v1_1$="11/20/91"
'
v0_0#=4
v0_1#=6
v0_2#=7
v0_3#=0
v0_4#=1
v0_5#=2
v0_6#=3
v0_7#=5
v0_8#=8
v0_9#=9
v0_A#=10
v0_B#=11
v0_C#=12
v0_D#=0
v0_E#=128
v0_F#=1
v0_10#=0
v0_11#=5
v0_12#=1
v0_13#=0
v0_14#=1
v0_15#=0
v0_16#=16
v0_17#=4
v0_4C#=32
' Bottle descriptor Dec,Bit, Meaning
' ( 1) 0 Color 0=Empty 2=Blue A color with no piece desc bit set
' ( 2) 1 Info 1=Yellow 3=Red (bits 2-5) indicate a single piece
' ( 4) 2 Right Half
' ( 8) 3 Left Half
' ( 16) 4 Bottom Half
' ( 32) 5 Top Half
' ( 64) 6 Virus
' (128) 7 Wall piece
'
' Init
'
DIM v4_0#(15)
DIM v4_1#(15)
DIM v4_2#(15,25)
DIM v4_3#(20,4)
DIM v5_0$(32008)
DIM v5_1$(30)
'
ARRAYFILL v4_3#(),0
'
FOR v0_18#=0 TO 15
READ v4_1#(v0_18#)
READ v4_0#(v0_18#)
NEXT v0_18#
'
DATA 0,1911,48,1847,855,1792,7,6,1904,7,1536,119,1056,1904
DATA 1910,1799,851,1365,1908,819,1044,1843,1360,883
DATA 1799,823,1904,887,1288,1907,1911,0
'
@vB_0
@vB_1
v0_19#=FALSE
@vB_17
STICK 1
WHILE NOT v0_19# AND v0_14#<5
IF v0_1A#=0
WAVE 0
EVERY STOP
v0_1B#=0
INC v0_14#
@vB_2
PUT 0,0,v1_2$,3
@vB_3
@vB_1
EVERY 35 GOSUB vB_18
ENDIF
@vB_4
v0_1C#=FALSE
WHILE NOT v0_1C#
v0_1D#=TIMER+105-(v0_14#*5)-INT(v0_1B#/50)
INC v0_1B#
PRINT AT(1,5);105-(v0_14#*5)-INT(v0_1B#/50);" ";
WHILE TIMER<v0_1D#
' IF stick=FALSE
v1_3$=RIGHT$(INKEY$,1)
SELECT v1_3$
CASE "H"
@vB_5
CASE "K"
@vB_6
CASE "M"
@vB_7
CASE "P"
v0_1D#=TIMER
ENDSELECT
' ELSE
v0_48#=STICK(1)
IF v0_48#<>v0_49#
SELECT v0_48#
CASE 4
@vB_6
CASE 8
@vB_7
CASE 2
v0_1D#=TIMER
ENDSELECT
v0_49#=v0_48#
ENDIF
v0_4A#=STRIG(1)
IF v0_4A#<>v0_4B#
IF STRIG(1)
@vB_5
ENDIF
v0_4B#=v0_4A#
ENDIF
' ENDIF
WEND
@vB_8
IF NOT v0_1C#
@vB_9(v0_1F#,v0_20#,v0_21#)
INC v0_20#
@vB_A(v0_1F#,v0_20#,v0_22#,v0_23#,v0_21#)
ELSE
v0_24#=1
v0_25#=0
WHILE v0_24#>0
v0_24#=0
@vB_B
IF v0_26#>0 THEN
@vB_C
v0_25#=1
ENDIF
IF v0_25#=1
@vB_D
ENDIF
WEND
'
ENDIF
WEND
WEND
CLS
PRINT AT(5,10);"Game_Over"
PRINT
PRINT
PRINT "Addictive little game, isn't it?"
PRINT
PRINT "Look for future updates,and the complete"
PRINT "ShareWare release soon!"
PRINT
PRINT "press a key to exit"
v0_3E#=INP(2)
@vB_14
'
> PROCEDURE vB_3
ARRAYFILL v4_2#(),v0_D#
FOR v0_27#=3 TO 20
v4_2#(0,v0_27#)=v0_E#
v4_2#(9,v0_27#)=v0_E#
NEXT v0_27#
FOR v0_27#=1 TO 9
v4_2#(v0_27#,20)=v0_E#
NEXT v0_27#
FOR v0_27#=0 TO 3
v4_2#(3,v0_27#)=v0_E#
v4_2#(6,v0_27#)=v0_E#
v4_2#(v0_27#,3)=v0_E#
v4_2#(v0_27#+6,3)=v0_E#
NEXT v0_27#
RETURN
'
> PROCEDURE vB_4
v0_1F#=4
v0_20#=0
v0_22#=INT(RND*3)+1
v0_23#=INT(RND*3)+1
v0_21#=v0_12#
RETURN
'
> PROCEDURE vB_5
IF v0_20#<1
GOTO vA_0
ENDIF
IF v0_21#=v0_13#
@vB_E(v0_1F#+1,v0_20#)
v0_28#=v0_29#
ELSE
@vB_E(v0_1F#,v0_20#-1)
v0_28#=v0_29#
ENDIF
IF v0_28#=FALSE
GOTO vA_0
ENDIF
IF v0_21#=v0_13#
SWAP v0_22#,v0_23#
ENDIF
@vB_9(v0_1F#,v0_20#,v0_21#)
v0_21#=1-v0_21#
@vB_A(v0_1F#,v0_20#,v0_22#,v0_23#,v0_21#)
vA_0:
RETURN
'
> PROCEDURE vB_6
IF v0_21#=v0_13#
@vB_E(v0_1F#-1,v0_20#)
v0_2A#=v0_29#
@vB_E(v0_1F#-1,v0_20#-1)
IF v0_29#=v0_2B#
v0_2A#=v0_2B#
ENDIF
ELSE
@vB_E(v0_1F#-1,v0_20#)
v0_2A#=v0_29#
ENDIF
IF v0_2A#=FALSE
GOTO vA_1
ENDIF
@vB_9(v0_1F#,v0_20#,v0_21#)
DEC v0_1F#
@vB_A(v0_1F#,v0_20#,v0_22#,v0_23#,v0_21#)
vA_1:
RETURN
'
> PROCEDURE vB_7
IF v0_21#=v0_13#
@vB_E(v0_1F#+1,v0_20#)
v0_2A#=v0_29#
@vB_E(v0_1F#+1,v0_20#-1)
IF v0_29#=FALSE
v0_2A#=FALSE
ENDIF
ELSE
@vB_E(v0_1F#+2,v0_20#)
v0_2A#=v0_29#
ENDIF
IF v0_2A#=FALSE
GOTO vA_2
ENDIF
@vB_9(v0_1F#,v0_20#,v0_21#)
INC v0_1F#
@vB_A(v0_1F#,v0_20#,v0_22#,v0_23#,v0_21#)
vA_2:
RETURN
'
> PROCEDURE vB_8
IF v0_21#=v0_13#
@vB_E(v0_1F#,v0_20#+1)
v0_1C#=NOT v0_29#
ELSE
@vB_E(v0_1F#,v0_20#+1)
v0_1C#=NOT v0_29#
@vB_E(v0_1F#+1,v0_20#+1)
IF v0_29#=FALSE
v0_1C#=TRUE
ENDIF
ENDIF
LOCATE 10,1
IF v0_1C#=TRUE
IF v0_21#=v0_12#
v4_2#(v0_1F#,v0_20#)=v0_22# OR 8
v4_2#(v0_1F#+1,v0_20#)=v0_23# OR 4
ELSE
v4_2#(v0_1F#,v0_20#)=v0_22# OR 16
v4_2#(v0_1F#,v0_20#-1)=v0_23# OR 32
ENDIF
ENDIF
IF v0_1C#=TRUE AND v0_20#<=2
v0_19#=TRUE
ENDIF
RETURN
'
> PROCEDURE vB_9(v0_1F#,v0_20#,v0_21#)
IF v0_21#=v0_13#
PRINT AT(v0_1F#+v0_16#,v0_20#+v0_17#);" ";
PRINT AT(v0_1F#+v0_16#,v0_20#+v0_17#-1);" ";
ELSE
PRINT AT(v0_1F#+v0_16#,v0_20#+v0_17#);" ";
PRINT AT(v0_1F#+1+v0_16#,v0_20#+v0_17#);" ";
ENDIF
RETURN
'
> PROCEDURE vB_A(v0_2C#,v0_2D#,v0_22#,v0_23#,v0_21#)
ADD v0_2C#,v0_16#
ADD v0_2D#,v0_17#
DEC v0_2C#
DEC v0_2D#
MUL v0_2C#,8
MUL v0_2D#,8
IF v0_21#=v0_13#
PUT v0_2C#,v0_2D#,v5_1$((v0_22#-1)*7+4)
PUT v0_2C#,v0_2D#-8,v5_1$((v0_23#-1)*7+3)
ELSE
PUT v0_2C#,v0_2D#,v5_1$((v0_22#-1)*7+1)
PUT v0_2C#+8,v0_2D#,v5_1$((v0_23#-1)*7+2)
ENDIF
RETURN
'
> PROCEDURE vB_E(v0_2E#,v0_2F#)
v0_29#=TRUE
IF v4_2#(v0_2E#,v0_2F#)<>v0_D#
v0_29#=FALSE
ENDIF
RETURN
'
> PROCEDURE vB_B
v0_26#=0
FOR v0_18#=1 TO 8
FOR v0_27#=19 DOWNTO 4
v0_30#=v0_27#
v0_31#=(v4_2#(v0_18#,v0_27#) AND 3)
IF v0_31#<>v0_D#
WHILE (v4_2#(v0_18#,v0_27#-1) AND 3)=v0_31#
DEC v0_27#
WEND
IF v0_30#-v0_27#>=3
INC v0_26#
v4_3#(v0_26#,1)=v0_13#
v4_3#(v0_26#,2)=v0_27#
v4_3#(v0_26#,3)=v0_30#
v4_3#(v0_26#,4)=v0_18#
ENDIF
ENDIF
NEXT v0_27#
NEXT v0_18#
'
FOR v0_27#=19 DOWNTO 4
FOR v0_18#=8 DOWNTO 4
v0_30#=v0_18#
v0_31#=(v4_2#(v0_18#,v0_27#) AND 3)
IF v0_31#<>v0_D#
WHILE (v4_2#(v0_18#-1,v0_27#) AND 3)=v0_31#
DEC v0_18#
WEND
IF v0_30#-v0_18#>=3
INC v0_26#
v4_3#(v0_26#,1)=v0_12#
v4_3#(v0_26#,2)=v0_18#
v4_3#(v0_26#,3)=v0_30#
v4_3#(v0_26#,4)=v0_27#
ENDIF
ENDIF
NEXT v0_18#
NEXT v0_27#
RETURN
'
> PROCEDURE vB_C
'
v0_32#=0
FOR v0_33#=1 TO v0_26#
IF v4_3#(v0_33#,1)=v0_12#
v0_27#=v4_3#(v0_33#,4)
v0_34#=v4_3#(v0_33#,2)
v0_35#=v4_3#(v0_33#,3)
IF v4_2#(v0_35#,v0_27#) AND 8
v4_2#(v0_35#+1,v0_27#)=v4_2#(v0_35#+1,v0_27#) AND 3
@vB_F(v0_35#+1,v0_27#,v4_2#(v0_35#+1,v0_27#))
ENDIF
IF v4_2#(v0_34#,v0_27#) AND 4
v4_2#(v0_34#-1,v0_27#)=v4_2#(v0_34#-1,v0_27#) AND 3
@vB_F(v0_34#-1,v0_27#,v4_2#(v0_34#-1,v0_27#))
ENDIF
FOR v0_18#=v0_34# TO v0_35#
IF v4_2#(v0_18#,v0_27#) AND 32
v4_2#(v0_18#,v0_27#+1)=v4_2#(v0_18#,v0_27#+1) AND 3
@vB_F(v0_18#,v0_27#+1,v4_2#(v0_18#,v0_27#+1))
ENDIF
IF v4_2#(v0_18#,v0_27#) AND 16
v4_2#(v0_18#,v0_27#-1)=v4_2#(v0_18#,v0_27#-1) AND 3
@vB_F(v0_18#,v0_27#-1,v4_2#(v0_18#,v0_27#-1))
ENDIF
IF v4_2#(v0_18#,v0_27#) AND 64
@vB_10
DEC v0_1A#
INC v0_32#
ADD v0_15#,100
ENDIF
@vB_11(v0_18#,v0_27#,v4_2#(v0_18#,v0_27#) AND 3)
v4_2#(v0_18#,v0_27#)=(v4_2#(v0_18#,v0_27#) OR 128) AND 131
NEXT v0_18#
ENDIF
'
IF v4_3#(v0_33#,1)=v0_13#
v0_18#=v4_3#(v0_33#,4)
v0_34#=v4_3#(v0_33#,2)
v0_35#=v4_3#(v0_33#,3)
IF v4_2#(v0_18#,v0_35#) AND 32
v4_2#(v0_18#,v0_35#+1)=v4_2#(v0_18#,v0_35#+1) AND 3
@vB_F(v0_18#,v0_35#+1,v4_2#(v0_18#,v0_35#+1))
ENDIF
IF v4_2#(v0_18#,v0_34#) AND 16
v4_2#(v0_18#,v0_34#-1)=v4_2#(v0_18#,v0_34#-1) AND 3
@vB_F(v0_18#,v0_34#-1,v4_2#(v0_18#,v0_34#-1))
ENDIF
FOR v0_27#=v0_34# TO v0_35#
IF v4_2#(v0_18#,v0_27#) AND 8
v4_2#(v0_18#+1,v0_27#)=v4_2#(v0_18#+1,v0_27#) AND 3
@vB_F(v0_18#+1,v0_27#,v4_2#(v0_18#+1,v0_27#))
ENDIF
IF v4_2#(v0_18#,v0_27#) AND 4
v4_2#(v0_18#-1,v0_27#)=v4_2#(v0_18#-1,v0_27#) AND 3
@vB_F(v0_18#-1,v0_27#,v4_2#(v0_18#-1,v0_27#))
ENDIF
IF v4_2#(v0_18#,v0_27#) AND 64
@vB_10
DEC v0_1A#
INC v0_32#
ADD v0_15#,100
ENDIF
@vB_11(v0_18#,v0_27#,v4_2#(v0_18#,v0_27#) AND 3)
v4_2#(v0_18#,v0_27#)=(v4_2#(v0_18#,v0_27#) OR 128) AND 131
NEXT v0_27#
ENDIF
NEXT v0_33#
IF (v0_32#>1 AND v0_26#>1)
IF v0_32#>v0_26#
ADD v0_15#,v0_26#*1000
ENDIF
IF v0_32#<v0_26#
ADD v0_15#,v0_32#*1000
ENDIF
IF v0_32#=v0_26#
ADD v0_15#,v0_32#*1000
ENDIF
ENDIF
@vB_12
' Pause 30
FOR v0_27#=1 TO 20
FOR v0_18#=1 TO 8
IF v4_2#(v0_18#,v0_27#)>128
v4_2#(v0_18#,v0_27#)=v0_D#
PRINT AT(v0_18#+v0_16#,v0_27#+v0_17#);" ";
ENDIF
NEXT v0_18#
NEXT v0_27#
RETURN
'
> PROCEDURE vB_D
v0_24#=0
FOR v0_27#=19 TO 1 STEP -1
FOR v0_18#=1 TO 8
IF (v4_2#(v0_18#,v0_27#) AND 3)<>v0_D#
IF (v4_2#(v0_18#,v0_27#) AND 8)=8
@vB_E(v0_18#,v0_27#+1)
v0_36#=v0_29#
@vB_E(v0_18#+1,v0_27#+1)
IF (v0_36#=TRUE AND v0_29#=TRUE)
v4_2#(v0_18#,v0_27#+1)=v4_2#(v0_18#,v0_27#)
v4_2#(v0_18#+1,v0_27#+1)=v4_2#(v0_18#+1,v0_27#)
v4_2#(v0_18#,v0_27#)=v0_D#
v4_2#(v0_18#+1,v0_27#)=v0_D#
INC v0_24#
@vB_A(v0_18#,v0_27#+1,v4_2#(v0_18#,v0_27#+1) AND 3,v4_2#(v0_18#+1,v0_27#+1) AND 3,v0_12#)
@vB_9(v0_18#,v0_27#,v0_12#)
ENDIF
ENDIF
IF (v4_2#(v0_18#,v0_27#) AND 16)=16
@vB_E(v0_18#,v0_27#+1)
IF v0_29#=TRUE
v4_2#(v0_18#,v0_27#+1)=v4_2#(v0_18#,v0_27#)
v4_2#(v0_18#,v0_27#)=v4_2#(v0_18#,v0_27#-1)
v4_2#(v0_18#,v0_27#-1)=v0_D#
INC v0_24#
@vB_9(v0_18#,v0_27#,v0_13#)
@vB_A(v0_18#,v0_27#+1,v4_2#(v0_18#,v0_27#+1) AND 3,v4_2#(v0_18#,v0_27#) AND 3,v0_13#)
ENDIF
ENDIF
IF (v4_2#(v0_18#,v0_27#)>0 AND v4_2#(v0_18#,v0_27#)<4)
@vB_E(v0_18#,v0_27#+1)
IF v0_29#=TRUE
@vB_F(v0_18#,v0_27#+1,v4_2#(v0_18#,v0_27#))
PRINT AT(v0_18#+v0_16#,v0_27#+v0_17#);" ";
v4_2#(v0_18#,v0_27#+1)=v4_2#(v0_18#,v0_27#)
v4_2#(v0_18#,v0_27#)=v0_D#
INC v0_24#
ENDIF
ENDIF
ENDIF
NEXT v0_18#
NEXT v0_27#
RETURN
'
> PROCEDURE vB_11(v0_37#,v0_38#,v0_39#)
ADD v0_37#,v0_16#
ADD v0_38#,v0_17#
DEC v0_37#
DEC v0_38#
MUL v0_37#,8
MUL v0_38#,8
PUT v0_37#,v0_38#,v5_1$((v0_39#-1)*7+5)
RETURN
'
> PROCEDURE vB_F(v0_3A#,v0_3B#,v0_3C#)
ADD v0_3A#,v0_16#
ADD v0_3B#,v0_17#
DEC v0_3A#
DEC v0_3B#
MUL v0_3A#,8
MUL v0_3B#,8
PUT v0_3A#,v0_3B#,v5_1$((v0_3C#-1)*7)
RETURN
'
> PROCEDURE vB_13
v1_2$=SPACE$(32000)
OPEN "I",#1,"stuff.PUT"
v1_2$=INPUT$(32008,#1)
CLOSE #1
PUT 0,0,v1_2$,3
OPEN "I",#1,"necro.dat"
FOR v0_18#=0 TO 20
v5_1$(v0_18#)=INPUT$(72,#1)
NEXT v0_18#
CLOSE #1
RETURN
'
> PROCEDURE vB_14
FOR v0_18#=0 TO 15
SETCOLOR v0_18#,v4_0#(v0_18#)
NEXT v0_18#
SPOKE (&H484),PEEK(&H484) OR 1
WAVE 0
STICK 0
RETURN
'
> PROCEDURE vB_15
FOR v0_18#=v0_3D# TO 15
SETCOLOR v0_18#,v4_1#(v0_18#)
NEXT v0_18#
' kill keyclick
SPOKE (&H484),PEEK(&H484) AND 254
RETURN
'
> PROCEDURE vB_0
@vB_15
CLS
DEFTEXT 6,1,0,32
TEXT 0,22,"Dr. Necro"
DEFTEXT 4,0,0,13
TEXT 0,40,"Beta Test Release -- Demo version"
DEFTEXT 3,0,0,13
TEXT 0,60,"(c)1991 NecroWare Productions"
DEFTEXT 7,0,0,13
TEXT 0,75,"Beta "+v1_0$+" "+v1_1$+" By: Ken Schafer"
DEFTEXT 8,0,0,13
TEXT 0,90,"press a key"
DEFTEXT 9,0,0,13
TEXT 0,110,"Send comments, suggestions, source code"
TEXT 0,125,"to replay digi sounds, etc. to:"
TEXT 0,145,"NecroWare Development"
TEXT 0,160,"Box 688"
TEXT 0,175,"Clark Mills, New York, 13321-0688"
TEXT 0,190,"GEnie - K.Schafer4, Delphi - kschafer"
v0_3E#=INP(2)
CLS
@vB_13
@vB_3
RETURN
'
> PROCEDURE vB_12
COLOR v0_8#
DEFFILL v0_8#
GRAPHMODE 2
DEFTEXT 0,0,0,6
v1_4$=LEFT$("0000000",7-LEN(STR$(v0_15#)))+STR$(v0_15#)
PBOX 48,56,102,64
TEXT 48,62,v1_4$
COLOR v0_6#
DEFFILL v0_6#
DEFTEXT 0,0,0,6
v1_5$=LEFT$("00",2-LEN(STR$(v0_1A#)))+STR$(v0_1A#)
PBOX 248,176,263,184
TEXT 248,182,v1_5$
v1_6$=LEFT$("00",2-LEN(STR$(v0_14#)))+STR$(v0_14#)
PBOX 248,128,263,136
TEXT 248,134,v1_6$
GRAPHMODE 1
RETURN
'
> PROCEDURE vB_2
ADD v0_15#,v0_14#*1000
@vB_12
COLOR v0_8#
DEFFILL v0_B#
GRAPHMODE 2
DEFTEXT 12,0,0,6
DEFLINE 0,4,0,0
PRBOX 120,64,200,127
RBOX 120,64,200,127
TEXT 128,78,"GOOD JOB"
TEXT 128,86,"--------"
TEXT 132,94,"Prepare"
TEXT 148,102,"For"
TEXT 144,110,"Next"
TEXT 140,118,"Level"
PAUSE 120
GRAPHMODE 1
RETURN
'
> PROCEDURE vB_1
DEFTEXT 8,0,0,13
PUT 0,0,v5_0$(3)
PRINT AT(1,1);"Ver";
PRINT AT(1,2);v1_0$;
PRINT AT(1,4);"Dif";
PRINT AT(1,7);"Note";
v0_1A#=v0_14#*4+4
v0_3F#=10
IF v0_14#>10
ADD v0_3F#,INT((v0_14#-10)/2)
ENDIF
v0_40#=0
FOR v0_18#=1 TO v0_1A#
v0_41#=20-INT(RND*v0_3F#)
v0_42#=INT(RND*8)+1
WHILE v4_2#(v0_42#,v0_41#)<>v0_D#
v0_41#=20-INT(RND*v0_3F#)
v0_42#=INT(RND*8)+1
WEND
INC v0_40#
IF v0_40#=4
v0_40#=1
ENDIF
v4_2#(v0_42#,v0_41#)=64+v0_40#
ADD v0_42#,v0_16#
ADD v0_41#,v0_17#
DEC v0_42#
DEC v0_41#
MUL v0_42#,8
MUL v0_41#,8
PUT v0_42#,v0_41#,v5_1$((v0_40#-1)*7+6)
NEXT v0_18#
@vB_12
IF v0_14#>4
v0_19#=FALSE
ENDIF
RETURN
'
> PROCEDURE vB_10
FOR v0_43#=5 DOWNTO 2
SOUND 1,15,v0_43#,5,1
NEXT v0_43#
FOR v0_43#=2 TO 5
SOUND 1,15,v0_43#,5,1
NEXT v0_43#
SOUND 1,0,0,0,0
WAVE 37
RETURN
'
> PROCEDURE vB_17
RESTORE vA_4
READ v0_4C#
DIM v4_4#(3,v0_4C#),v4_5#(3,v0_4C#)
FOR v0_44#=1 TO 3
FOR v0_18#=1 TO v0_4C#
READ v4_4#(v0_44#,v0_18#)
READ v4_5#(v0_44#,v0_18#)
NEXT v0_18#
NEXT v0_44#
'
v0_45#=0
WAVE 39,7,8
EVERY 35 GOSUB vB_18
RETURN
'
> PROCEDURE vB_18
'
INC v0_45#
PRINT AT(1,8);v0_45#;" ";
IF v0_45#=v0_4C#
v0_45#=0
ENDIF
FOR v0_44#=1 TO 3
SOUND v0_44#,0,0,0
WAVE 35
IF v4_4#(v0_44#,v0_45#)<>0
SOUND v0_44#,13,v4_4#(v0_44#,v0_45#),v4_5#(v0_44#,v0_45#)
IF (v0_45#>=193 AND v0_45#<=222)
WAVE 7,7
ELSE
WAVE 35,35,9,5000
ENDIF
ENDIF
NEXT v0_44#
RETURN
'
vA_4:
DATA 284
vA_3:
DATA 6,1,6,1,10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,2,3,2,1,2,1,2,10,1,10,1
DATA 6,1,6,1,10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,2,3,2,1,2,1,2,10,1,10,1
DATA 11,1,11,1,3,2,3,2,6,2,6,2,8,2,8,2,9,2,9,2,8,2,8,2,6,2,6,2,3,2,3,2
DATA 6,1,6,1,10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,2,3,2,1,2,1,2,10,1,10,1
DATA 1,2,1,2,5,2,5,2,8,2,8,2,10,2,10,2,11,1,11,1,1,2,1,2,3,2,3,2,8,2,8,2
DATA 6,1,6,1,10,1,10,1,11,1,11,1,12,1,12,1,1,2,1,3,1,3,1,3,1,3,1,2,4,2,4,2
DATA 6,1,6,1,10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,2,3,2,1,2,1,2,10,1,10,1
DATA 6,1,6,1,10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,2,3,2,1,2,1,2,10,1,10,1
DATA 11,1,11,1,3,2,3,2,6,2,6,2,8,2,8,2,9,2,9,2,8,2,8,2,6,2,6,2,3,2,3,2
DATA 6,1,6,1,10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,2,3,2,1,2,1,2,10,1,10,1
DATA 1,2,1,2,5,2,5,2,8,2,8,2,10,2,10,2,11,1,11,1,3,2,3,2,6,2,6,2,8,2,8,2
DATA 6,1,6,1,10,1,10,1,11,1,11,1,12,1,12,1,1,2,1,3,1,3,1,3,1,3,1,2,4,2,4,2
DATA 6,1,0,0,0,0,0,0,0,0,0,0,0,0,6,1,5,3,6,3,1,3,11,2,10,2,0,0,6,1,5,3
DATA 6,3,1,3,3,3,1,3,6,3,10,3,6,4,6,4,4,4,4,4,3,4,3,4,1,4,1,4,11,1,11,1
DATA 3,2,3,2,6,2,6,2,8,2,8,2,9,2,9,2,8,2,8,2,6,2,6,2,3,2,3,2,6,1,6,1
DATA 10,1,10,1,1,2,1,2,3,2,3,2,6,2,6,2,3,1,3,1,1,2,1,2,10,1,10,1,1,2,1,2
DATA 5,2,5,2,8,2,8,2,10,2,10,2,11,1,11,1,3,2,3,2,6,2,6,2,8,2,8,2,6,1,6,1
DATA 10,1,10,1,11,1,11,1,12,1,12,1,1,2,11,1,8,1,6,1,6,1,0,0
'
DATA 0,0,6,4,6,4,0,0,6,4,0,0,0,0,0,0,6,4,6,4,0,0,10,4,0,0,6,4,3,4,1,4
DATA 0,0,6,4,6,4,0,0,6,4,0,0,0,0,0,0,6,4,6,4,0,0,10,4,0,0,6,4,3,4,1,4
DATA 0,0,6,4,6,4,0,0,6,4,0,0,0,0,0,0,6,4,6,4,0,0,9,4,0,0,6,4,3,4,1,4
DATA 0,0,6,4,6,4,0,0,6,4,0,0,0,0,0,0,6,4,6,4,0,0,10,4,0,0,6,4,3,4,1,4
DATA 0,0,1,5,12,4,0,0,9,4,6,4,3,4,1,4,1,5,11,4,0,0,9,4,0,0,0,0,0,0,0,0
DATA 0,0,6,4,4,4,4,4,3,4,3,4,2,4,2,4,0,0,1,5,1,5,1,5,1,5,0,0,0,0,0,0
DATA 9,4,10,4,1,5,0,0,6,5,6,5,0,0,0,0,9,4,11,4,1,5,6,5,0,0,0,0,0,0,0,0
DATA 0,0,1,5,11,4,0,0,10,4,6,4,3,4,1,4,6,4,6,4,0,0,10,4,0,0,0,0,0,0,0,0
DATA 8,4,9,4,1,5,0,0,6,5,6,5,0,0,0,0,8,4,9,4,1,5,6,5,0,0,0,0,0,0,0,0
DATA 0,0,1,5,11,4,0,0,10,4,6,4,3,4,1,4,6,4,6,4,0,0,10,4,0,0,0,0,0,0,10,3
DATA 0,0,1,5,11,4,0,0,9,4,6,4,3,4,1,4,1,5,11,4,0,0,9,4,0,0,0,0,0,0,0,0
DATA 0,0,6,3,4,3,4,3,3,3,3,3,2,3,2,3,0,0,1,5,1,5,1,5,1,5,0,0,0,0,0,0
DATA 0,0,5,3,6,3,1,3,3,3,1,3,0,0,0,0,9,3,10,3,6,3,3,3,1,3,0,0,0,0,12,3
DATA 1,4,10,3,11,3,10,3,1,4,6,4,1,5,1,5,11,4,11,4,10,4,10,4,8,4,8,4,0,0,6,4
DATA 6,4,0,0,6,4,0,0,0,0,0,0,6,4,6,4,0,0,9,4,0,0,6,4,3,4,1,4,0,0,6,4
DATA 6,4,0,0,6,4,0,0,0,0,0,0,6,4,6,4,0,0,10,4,0,0,6,4,3,4,1,4,0,0,0,0
DATA 0,0,0,0,9,4,6,4,3,4,1,4,1,5,11,4,0,0,9,4,0,0,0,0,0,0,0,0,0,0,6,4
DATA 4,4,4,4,3,4,3,4,2,4,2,4,1,5,3,5,5,5,6,5,10,3,0,0
'
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,5,2,1,2,1,2
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,5,2,1,2,1,2
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,6,3,6,3,6,3
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,6,3
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0
DATA 0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,0,0,6,3,0,0,0,0,6,3,6,3,6,3
DATA 0,0,0,0,0,0,0,0,0,0,0,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,6,3,0,0,9,3
DATA 10,3,6,3,8,3,6